/**
 * axios配置
 */
import Vue from 'vue';
import axios from 'axios';
// import store from '../store';
// import router from '../router';
import {Message} from 'element-ui';
import setting from './setting';
import VueAxios from 'vue-axios';
import {envDistinguishDomain} from '@/utils/common'

Vue.use(VueAxios, axios);

// 设置统一的url
axios.defaults.baseURL = envDistinguishDomain();

/* 请求拦截器 */
axios.interceptors.request.use((config) => {
  // 添加token到header
  const token = setting.takeToken();
  if (token) {
    config.headers[setting.tokenHeaderName] = token;
  }
  return config;
}, (error) => {
  return Promise.reject(error);
});

/* 响应拦截器 */
axios.interceptors.response.use((res) => {
  let code = res?.data?.code || null
  if (code === null) {
    Message({
      message: '接口请求异常',
      type: 'error'
    })
  } else if (code !== 200) {
    Message({
      message: res?.data?.msg || '接口请求失败',
      type: 'error'
    })
  }
  return res;
}, (error) => {
  Message({
    message: '接口请求失败!!',
    type: 'error'
  })
  return Promise.reject(error);
});

/**
 * 跳转到登录页面
 */
// function goLogin(reload) {
//   store.dispatch('user/removeToken').then(() => {
//     if (reload) {
//       location.replace('/login');  // 这样跳转避免再次登录重复注册动态路由
//     } else {
//       const path = router.currentRoute.path;
//       return router.push({
//         path: '/login',
//         query: path && path !== '/' ? {form: path} : null
//       });
//     }
//   });
// }
